package com.frame.work.service;

import com.frame.work.entity.TblSecurityLog;
import com.frame.work.entity.TimeCount;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 安全日志信息日志业务逻辑
 *
 * @author hewenze
 */
@Component
public interface TblSecurityLogService {

    /**
     * 新增设备安全日志信息日志
     *
     * @param tblSecurityLog
     */
    void insert(TblSecurityLog tblSecurityLog);

    /**
     * 根据分页信息，设备mac，网关mac，时间查询日志
     *
     * @param pageNum
     * @param pageSize
     * @param gatewayMac
     * @param deviceMac
     * @param start
     * @param end
     * @return
     */
    List<TblSecurityLog> selectByTime(Integer pageNum, Integer pageSize, String gatewayMac, String deviceMac, String start, String end);

    /**
     * 根据网关mac，设备mac，查询当天数据
     *
     * @param gatewayMac
     * @param deviceMac
     * @return
     */
    List<TblSecurityLog> selectByToday(String gatewayMac, String deviceMac);

    /**
     * 根据网关mac，设备mac，查询某天数据
     *
     * @param gatewayMac
     * @param deviceMac
     * @return
     */
    List<TblSecurityLog> selectByDay(String gatewayMac, String deviceMac, long time);

    /**
     * 图表所需数据
     *
     * @param gatewayMac
     * @param deviceMac
     * @param start
     * @param end
     * @return
     */
    List<TimeCount> selectTimeCount(String gatewayMac, String deviceMac, String start, String end);

    /**
     * 根据设备mac删除所有日志
     *
     * @param deviceMac
     * @return
     */
    int deleteAllByDeviceMac(String deviceMac);

    /**
     * 根据日志id，批量删除日志
     *
     * @param ids
     * @return
     */
    int deleteByIds(List<String> ids);

}
